<template>
{{#if page.psSysPFPlugin}}
    {{> @macro/plugins/view/view-use.hbs appPlugin=page.psSysPFPlugin}}
{{else}}
    {{#if page.psViewLayoutPanel.useDefaultLayout}}
    <AppLogin/>
    {{else}}
    <div :class="classNames">
        {{#if page.psViewLayoutPanel.rootPSPanelItems}}
        {{#each page.psViewLayoutPanel.rootPSPanelItems as | panelItem |}}
        {{> @macro/widgets/panel-detail/include-panel.hbs type=panelItem.itemType item=panelItem isMultiData=false panel=page.psViewLayoutPanel page=page}}
        {{/each}}
        {{/if}}
    </div>
    {{/if}}    
{{/if}}
</template>
<script setup lang="ts">
// 基于template/src/views/\{{appModules}}/\{{pages@APPLOGINVIEW}}/\{{spinalCase page.codeName}}.vue.hbs生成
{{#if page.psViewLayoutPanel.useDefaultLayout}}    
import AppLogin from '@components/function/login/login.vue';
{{else}}
import { AppCtrlPos, AppScrollContainer, AppSimpleFlexContainer, AppStandardContainer, AppTabPanel, AppTabPage } from '@components/layout-element/structure';
{{#if page.psViewLayoutPanel.viewProxyMode}}
{{> @macro/widgets/ctrl/import-ctrl.hbs ctrls=page.psViewLayoutPanel.psControls}}
{{else}}
{{> @macro/widgets/ctrl/import-ctrl.hbs ctrls=page.ctrls}}
{{/if}}
{{/if}}
import { model } from "./{{spinalCase page.codeName}}-model";
import { 
    getViewClassNames, 
    useNavParamsBind, 
    useEventBind,
{{#unless page.psViewLayoutPanel.useDefaultLayout}}
    handleComponentAction,
{{/unless}}
} from '@/hooks/use-view';
import { ILoginViewAbility, ILoginViewController, ILoginViewControllerParams, ILoginViewStore, LoginViewActionType, LoginViewController, IParam, ILoadingHelper, IContext, IEvent } from "@/core";

{{> @macro/view/view-props.hbs}}

{{> @macro/common/emit.hbs name="view" actionType="LoginViewActionType" ability="ILoginViewAbility"}}

const classNames = computed(() => {
  return getViewClassNames(model, props);
});

const params: ILoginViewControllerParams<LoginViewActionType, ILoginViewAbility> = {
    name: props.name,
    model, 
    evt,
    isLoadDefault: props.isLoadDefault,
    openType:props.openType, 
    pLoadingHelper:props.pLoadingHelper, 
    handler: (data: ILoginViewStore) => { return reactive(data); } 
};

{{> @macro/common/controller.hbs name="view" IController="ILoginViewController" store="ILoginViewStore" ability="ILoginViewAbility" controller="LoginViewController"}}
</script>